/* 
定义搜索的接口请求函数
函数返回一个promise对象

外部发请求都非常方法了
requestUsers('aa')
*/
import axios, { AxiosResponse } from 'axios'
import { SearchUsersResponse } from './models/searchTypes'

export const requestUsers = (searchName: string) => {

  /* 

  get方法
    第一个泛型固定是any
    第二个AxiosResponse<SearchUsersResponse>  约束response对象
     {
        data: T;  => 需要指定data的数据类型为SearchUsersResponse
        status: number;
        statusText: string;
        headers: AxiosResponseHeaders;
        config: AxiosRequestConfig<D>;
        request?: any;
     }
  */
  return axios.get<any, AxiosResponse<SearchUsersResponse>>('https://api.github.com/search/users', {
    params: {
      q: searchName
    }
  })
}